#include <iostream>
using namespace std;
#include <stack>

//栈stack容器

/*
构造函数：
    stack<T> stk;     //stack采用模版类实现，stack对象的默认构造形式
    stack(const stack &stk);    //拷贝构造函数

赋值函数：
    stack& operator=(const stack &stk);     //重载等号操作符

数据存取：
    push(elem);     //从栈顶添加元素
    pop();          //从栈顶移除第一个元素
    top();          //返回栈顶元素

大小操作：
    empty();        //判断堆栈是否为空
    size();         //返回栈的大小
*/

void test1()
{
    //特点：符合先进后出数据结构
    stack<int> s;

    //入栈
    s.push(10);
    s.push(20);
    s.push(30);
    s.push(40);

    //只要栈不为空，就查看栈顶，并且执行出栈操作
    while (!s.empty())
    {
        //查看栈顶元素
        cout << "栈顶元素为：" << s.top() << endl;

        //出栈
        s.pop();
    }
    
    cout << "栈的大小为：" << s.size() << endl;
}

int main()
{
    test1();
    return 0;
}